<?php

/**
 * $[ Delete.class ] [ Excluir ]
 * Classe responsavel por deletar genéricamente no banco de dados!
 *
 *@copyright (c) 2015, Rafael Batista da Silva
 */
class Delete extends Conn{

    private $Tabela;
    private $Termos;
    private $Places;
    Private $Result;

    /** @var PDOStatement */
    private $Delete;

    /** @var PDO */
    private $Conn;

    /**
     * <b> ExeCreate</b> Execute um cadastro simplificado no banco de dados utilizando prepared statements.
     * Basta informa o nome da tabela e um array atribuitivo com o nome da coluna e valor!
     *
     * @param STRING $Tabela = Informe o nome da tabela no banco!
     * @param ARRAY $Dados = Informe um array atribuitivo. ( Nome da coluna => Valor ).
     */
    public function ExeDelete($Tabela, $Termos, $ParseString){
        $this->Tabela = (string) $Tabela;
        $this->Termos = (string) $Termos;

        parse_str($ParseString, $this->Places);
        $this->getSyntax();
        $this->Execute();
    }

    public function getResult(){
        return $this->Result;
    }

    public function getRowCount(){
        return $this->Delete->rowCount();
    }

    public function setPlaces($ParseString){

    }

    /**
     * ****************************************
     * *********** PRIVATE METHODS ************
     * ****************************************
    */

    private  function Connect(){
        $this->Conn = parent::getConn();
        $this->Delete = $this->Conn->prepare($this->Delete);
    }

    private function getSyntax(){
        $this->Delete = "DELETE FROM {$this->Tabela} {$this->Termos}";
    }

    private function Execute(){
        $this->Connect();

        try {
            $this->Delete->execute($this->Places);
            $this->Result = true;
        } catch (PDOException $e) {
            $this->Result =  null;
            WSErro("<b>Erro ao Deletar</b> {$e->getMessage()}",$e->getCode());
        }
    }

}
